-
Notifications
You must be signed in to change notification settings - Fork 592
HDDS-6842. [Ozone-Streaming] Reduce the number of watch requests in StreamCommitWatcher. #3492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
captainzmc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @szetszwo for optimization, this a good point. Had we tested how much performance this improves?
|
@captainzmc , I was mainly testing writing a single 1GB file. Before this improvement, Async took ~6s but Streaming took ~9s in my setup. After this Streaming is about the same as Async. |
|
@captainzmc , BTW, I moved some of the changes to #3493 so that we can merge it directly to the master branch. |
OK, Let's start with #3493. |
|
Will run some benchmark again in order to verify the improvement. |
|
@captainzmc , just have verified that the performance of Stream and Async are about the same for writing a single 1GB file. Please review this. Thanks. |
|
captainzmc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @szetszwo for the update. The change looks good. I'm +1.
CI has some errors. However, these errors are not caused by this PR, they are caused by the previous Rebase. I think it's ok to fix these errors in this PR or a new PR.

|
@captainzmc , thanks a lot for reviewing this.
Let's fix it separately. Do you know how to fix it? |
Let me try to fix these. |
|
@captainzmc , tried some single client benchmarks. Streaming is obvious better than Async after this and the related fixes.
|
|
|
|
Thanks @szetszwo for the test, the streaming performance is very good from the test results, which can meet our expectations. It seems that the chunk size setting is important. |
|
@captainzmc , Stream is faster than Async by more than a double below.
|
|
@captainzmc , just have done some 3-client benchmarks. Stream is around 3 times faster than Async.
|
|
|
|
|
Thanks @szetszwo,Great progress!We will no longer worry about streaming being challenged when merging master. I and @guohao-rosicky will continue the development of HDDS-5869 in order to complete streaming functionality as soon as possible. |
|
Hi @szetszwo, Apart from chunk size, is there any other change of the streaming configuration? |
|
@captainzmc , this is the benchmark program https://github.com/szetszwo/ozone-benchmark which is forked for your program and this is the conf https://github.com/szetszwo/ozone-benchmark/blob/master/benchmark-conf.xml |
|
|
TYPE could be ASYNC, STREAM_API_MAPPED_BYTE_BUFFER or STREAM_API_BYTE_ARRAY. TYPE=STREAM will use STREAM_API_MAPPED_BYTE_BUFFER. |
|
Thanks @szetszwo . These are useful. Later we can collate these test data and the test process so that others can understand the streaming performance. |
…treamCommitWatcher. (apache#3492)
…treamCommitWatcher. (apache#3492) (cherry picked from commit 317053d)
* master: (88 commits) HDDS-7463. SCM Pipeline scrubber never able to cleanup allocated pipeline. (apache#4093) HDDS-7683. EC: ReplicationManager - UnderRep maintenance handler should not request nodes if none needed (apache#4109) HDDS-7635. Update failure metrics when allocate block fails in preExecute. (apache#4086) HDDS-7565. FSO purge directory for old bucket can update quota for new bucket (apache#4021) HDDS-7654. EC: ReplicationManager - merge mis-rep queue into under replicated queue (apache#4099) HDDS-7621. Update SCM term in datanode from heartbeat without any commands (apache#4101) HDDS-7649. S3 multipart upload EC release space quota wrong for old version (apache#4095) HDDS-7399. Enable specifying external root ca (apache#4053) HDDS-7398. Tool to remove old certs from the scm db (apache#3972) HDDS-6650. S3MultipartUpload support update bucket usedNamespace. (apache#4081) HDDS-7605. Improve logging in Container Balancer (apache#4067) HDDS-7616. EC: Refactor Unhealthy Replicated Processor (apache#4063) HDDS-7426. Add a new acceptance test for Streaming Pipeline. (apache#4019) HDDS-7478. [Ozone-Streaming] NPE in when creating a file with o3fs. (apache#3949) HDDS-7425. Add documentation for the new Streaming Pipeline feature. (apache#3913) HDDS-7438. [Ozone-Streaming] Add a createStreamKey method to OzoneBucket. (apache#3914) HDDS-7431. [Ozone-Streaming] Disable data steam by default. (apache#3900) HDDS-6955. [Ozone-streaming] Add explicit stream flag in ozone shell (apache#3559) HDDS-6867. [Ozone-Streaming] PutKeyHandler should not use streaming to put EC key. (apache#3516) HDDS-6842. [Ozone-Streaming] Reduce the number of watch requests in StreamCommitWatcher. (apache#3492) ...
See https://issues.apache.org/jira/browse/HDDS-6842